export default {
	data() {
		return {
			active: 0,
			tabList: [
				{
					label: '',
					loading: false,
					finished: false,
					error: false,
					empty: false,
					pageSize: 1,
					list: [],
					type: null
				}
			],
			// 基础请求参数
			params: {
				pageNumber: 1,
				pageSize: 10,
				order: '',
				sort: 'desc',
			},
			contentText: {
				contentDown: '上拉显示更多哦~',
				contentRefresh: "正在拼命加载中...",
				contentNoMore: "我是有底线的~"
			},
			pagination: {},
			service: null,
		};
	},
	methods: {
		// 加载数据
		async loadMore(item, operate) {
			// 从页面传入自定义处理方式
			if (!item.empty && !item.finished) {
				this.params.pageNumber = item.pageNumber;

				// 加载前参数处理
				if (this.beforeLoader) {
					await this.beforeLoader(item);
				}

				item.loading = true;

				let res = await this.service;
				item.list = item.list.concat(res.list);
				this.pagination = res.pagination;
				// 加载状态结束
				item.loading = false;
				item.pageNumber += 1;

				// 刷新列表
				if (operate === 'pullDown') {

					Toast({
						title: '刷新成功',
						icon: 'none',
						duration: 3000
					});
				}

				item.loading = false;

				// 暂无数据
				if (item.list.length === 0) {
					item.empty = true;
					item.page = 1;
				} else if (item.list.length >= res.pagination.total) {
					// 数据全部加载完成
					item.finished = true;
				}
				// 触发高度更新
				if (this.$refs.tabs) {
					this.$refs.tabs.doLayout();
				}

				// 加载完后操作
				if (this.afterLoader) {
					this.afterLoader();
				}
			}
		},
		// 下拉刷新
		onRefresh(item, operate) {
			item.list = [];
			item.loading = true;
			item.finished = false;
			item.empty = false;
			item.pageNumber = 1;
			this.loadMore(item, operate);
		},
	}
};
